package com.hx.jvm.jvm.oom;

import java.util.HashSet;

/**
 * 测试常量池抛出OOM异常
 * <p>
 * JVM参数： -XX:PermSize=6M -XX:MaxPerimSize=6M
 * <p>
 * 解释：在JDK1.7起，没有了永久代概念，次参数是无效的，原本存放在永久代的字符串常量池被移至Java堆中
 * 即使使用-XX:MaxMetaspaceSzie也是无效的
 * JDK1.8以后，很难看到虚拟机产生方法区的溢出异常了
 *
 * @author jxrjc
 */
public class RuntimeConstantPoolOOM {

    public static void main(String[] args) {
        HashSet<String> set = new HashSet<String>();
        short i = 0;
        while (true) {
            set.add(String.valueOf(i++).intern());
        }

    }

}
